1. Technical Field
The present invention relates to the recognition of human language input using data processing systems, such as handwriting recognition and voice recognition on desktop computers, handhold computers, personal data assistants, etc.
2. Description of the Prior Art
Text input on small devices is a challenging problem due to the memory constraints, severe size restrictions of the form factor, and the severe limits in the controls (buttons, menus etc) for entering and correcting text. Today's handheld computing devices which accept text input are becoming smaller still. Recent advances from portable computers, handheld computers, and personal data assistants to two-way paging, cellular telephones, and other portable wireless technologies have led to a demand for a small, portable, user friendly user interface to accept text input to compose documents and messages, such as for two-way messaging systems, and especially for systems which can both send and receive electronic mail (e-mail) or short messages.
For many years, portable computers have been getting smaller and smaller. One size-limiting component in the effort to produce a smaller portable computer has been the keyboard. If standard typewriter-size keys are used, the portable computer must be at least as large as the keyboard. Miniature keyboards have been used on portable computers, but the miniature keyboard keys have been found to be too small to be easily or quickly manipulated with sufficient accuracy by a user. Incorporating a full-size keyboard in a portable computer also hinders true portable use of the computer. Most portable computers cannot be operated without placing the computer on a flat work surface to allow the user to type with both hands. A user cannot easily use a portable computer while standing or moving.
Handwriting recognition is one approach that has been taken to solve the text input problem on small devices that have an electronically sensitive screen or pad that detects motion of a finger or stylus. In the latest generation of small portable computers, called Personal Digital Assistants (PDAs), companies have attempted to address this problem by incorporating handwriting recognition software in the PDA. A user may directly enter text by writing on a touch-sensitive panel or display screen. This handwritten text is then converted into digital data by the recognition software. Typically, the user writes one character at time and the PDA recognizes one character at time. The writing on the touch-sensitive panel or display screen generates a stream of data input indicating the contact points. The handwriting recognition software analyzes the geometric characteristics of the stream of data input to determine a character that may match to what the user is writing. The handwriting recognition software typically performs geometric pattern recognition to determine the handwritten characters. Unfortunately, the accuracy of the handwriting recognition software has to date been less than satisfactory. Current handwriting recognition solutions have many problems: such as the handwriting recognition systems, even on powerful personal computers, are not very accurate; on small devices, memory limitations further limiting handwriting recognition accuracy; and individual handwriting styles may differ from those used to train the handwriting software. It is for these reasons that many handwriting or ‘graffiti’ products require the user to learn a very specific set of strokes for the individual letters. These specific sets of strokes are designed to simplify the geometric pattern recognition process of the system and increase the recognition rate. Often these strokes are very different from the natural way in which the letter is written. The end result of the problems mentioned above is very low product adoption.
Voice recognition is another approach that has been taken to solve the text input problem. A voice recognition system typically includes a microphone to detect and record the voice input. The voice input is digitized and analyzed to extract a voice pattern. Voice recognition typically requires a powerful system to process the voice input. Some voice recognition systems with limited capability have been implemented on small devices, such as on cellular phone for voice-controlled operations. For voice-controlled operations, a device only needs to recognize a few commands. Even for such a limited scope of voice recognition, a small device typically does not have a satisfactory voice recognition accuracy because voice patterns vary among different users and under different circumstances.
It would be advantageous to develop a more practical system to process human language input that is provided in a user friendly fashion, such as handwriting recognition system for handwriting written in a natural way or voice recognition system for voice input spoken in a natural way, with improved accuracy and reduced computational requirement, such as reduced memory requirement and processing power requirement.